
package com.trial.area.dictionary.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.trial.area.common.dao.BaseDao;
import com.trial.area.dictionary.entity.DictionaryVO;
import com.trial.area.dictionary.param.DictionaryParam;

/**
 * 字典表Dao实现类
 *
 * @author 朱国军
 * @version 2016年03月23日 朱国军
 */
@Repository("dictionaryDao")
public class DictionaryDao extends BaseDao<DictionaryVO> {

    /**
     * 新增，注：返回的添加的条数，获取主键用entity.getId();
     *
     * @param entity 要增加的字典表对象
     * @return 返回新增的条数
     */
    public Integer insert(DictionaryVO entity) {
        return this.getSqlSession().insert("insertDictionary", entity);
    }
    
    /**
     * 修改
     *
     * @param entity 要修改的字典表对象
     * @return 返回修改的条数
     */
    public Integer update(DictionaryVO entity) {
        return this.getSqlSession().update("updateDictionaryById", entity);
    }
    
    /**
     * 根据ID获取字典表实体
     *
     * @param id 主键
     * @return 字典表信息
     */
    public DictionaryVO findById(String id) {
        return this.getSqlSession().selectOne("selectDictionaryById", id);
    }
    
    /**
     * 按查询条件【分页】查询
     *
     * @param param 字典表查询条件
     * @return 字典表列表
     */
    public List<DictionaryVO> queryByPage(DictionaryParam param) {
        return queryList("selectDictionaryList", param);
    }
    
    /**
     * 根据ID删除字典表
     *
     * @param id 主键
     */
    public Integer delete(String id) {
        return this.getSqlSession().delete("deleteDictionaryById", id);
    }
    
    /**
     * 根据枚举项字段名查询所有的枚举值
     *
     * @param tableColumn 枚举项字段名
     * @return 枚举项列表
     */
    public List<DictionaryVO> queryList(String tableColumn) {
        return this.getSqlSession().selectList("queryDictionaryList", tableColumn);
    }
}
